home *** CD-ROM | disk | FTP | other *** search
- DOCUMENTATION FOR VERSION 1.3 OF W2XO BBS
-
-
- The W2XO PBBS for use with KA9Q's NET tcp/ip networking program
- is written for Unix SysV systems to allow multi-user PBBS service
- to the AX25 community. As it is a normal Unix executable file,
- the PBBS may also be accessed by telephone modem or locally on any
- terminal of the system.
-
- Local Invocation of the PBBS is done by typing "xobbs <call>" at
- a system prompt.
-
- In the AX25 support mode, the PBBS is spawned by NET, using a
- modified version of ax25cmd.c, ax25subr.c and ax25.c.
- Input to and output from the PBBS are routed to and from NET via
- System V Message queues. NET passes the user's call to the PBBS
- for log-in purposes.
-
- There are four Sys V IPC message queues used for Communication
- between NET and XOBBS. All data going to NET for output is
- sent on the 'smsgqid'. All incoming data is received by the
- XOBBS from 'net' on the 'rsmgqid'. There are also two control
- message queues called 'rcmsgqid' and 'scmsgqid' which are used
- to exchange control and syncronization messages. Steering of
- the messages from and several concurrent XOBBS instances is
- done by using the process ID of the bbs to which the message
- is addressed as the IPC message type. Messages from a bbs to
- 'net' are sent with the bbs process id as a message type also,
- so that 'net' knows from whence they came. Sys V IPC allows
- selective receiving of messages from the queue by type.
- The first two queues are basically ascii text to and from
- the BBS and NET. The messages on the second(control) set of
- queues consists of 'kill me' messages (K) to NET from the bbs
- when the user disconnects or the forwarder is done, or 'go to
- next forwarding session' , etc when forwarding PBBS mail.
-
-
- HOMEDIR
-
- The home directory of the bbs should be entered in
- The makefile. Change the definition to that of the directory in
- which you wish to run the bbs.
-
-
- CONFIGURATION FILE
-
- Somewhat similarly to the WA7MBL and W0RLI ms-dos PBBS programs,
- XOBBS has a configuration file. CONFIG.XO contains the names
- of the directories and files used by the PBBS, allowing some
- flexibility of configuration. This file will be expanded in
- the future to allow various prompts, timeouts, etc.
-
-
- MULTI-USER MAIL SCHEME
-
- The PBBS uses a "mail header" file which duplicates the first line of
- the message file. Each message is wholly self-contained in its own file.
- Messages are originally written to a directory specified as
- "tempdir" in the CONFIG.XO file. A mail daemon process, MAILDAEMON.C
- is awakened by any new message filed or old message deleted from
- the TEMPDIR, by user signal 16, on which it is sleeping. MAILDAEMON
- scans TEMPDIR and takes appropriate action based on the TOCALL
- and ATBBS fields in the message header and the contents of the
- file 'dist' the directory 'fwding'. If the message is addressed to
- some other ATBBS than W2XO (or none), then first the DIST file
- is scanned for a match between the ATBBS field and a mailing
- distribution list name. If a match occurs, then a copy of the
- message is filed in MAILDIR and given the next message number
- in sequence as the filename. Links are then made to the
- message file to files in the FWDING directory which contain
- the call letters of the PBBS to which distribution is to be made
- followed by unique characters (a concatenation of process number in
- ascii and message instance). These files are used to trigger the
- reverse forwarding and forwarding mechanisms.
- I suggest running 'maildaemon' from an endless loop in a shell
- script, so that if anything causes it to crash, it will be
- re-spawned. This hasn't happened lately, but used to do so with
- some regularity.
-
- FORWARDING FILE
- This is ALMOST the same as the RLI/MBL style forwarding files.
- The major changes are the elimination of "via" or "v" ahead of the
- digipeater names in the connect message and only "G" lines are accepted,
- not "F" lines. ALSO, DIGIPEATERS are allowed only on G lines for now.
- If you don't have RLI or MBL documentation handy, a skeleton
- outline is:
- File "segments" begin at the file beginning of after "*** EOF"
- and continue to the next "*** EOF".
- Each segment may contail CC, S ,R , and G lines as well as the
- call letters of all stations/bbses reachable via the path
- which is established in this segment.
- A "CC" line sends a connect request to NET if in the forwarding mode.
- A "S" line is transmitted verbatim over the ax25 link.
- An "R" line is compared with the next line received over the
- ax25 link and an error is returned if there is no match.
- A "G" line gives the call letters of the bbs or node to which to
- connect. After the G is A-E, signifying the device on which the
- connection is to be attempted, ax0 thru ax4 (A is ax0, B is
- ax1 and so on). The "G" line also contains the time window for
- forwarding to each bbs. This is not used in this version
- because it is assumed that the user will create a CRON script
- to initiate forwarding.
- Lines containing the call letters of all bbses/stations served by
- this connection can follow the "G" line up to the next "*** EOF".
-
- EXAMPLE:
-
- CC PGH03
- SC KA3JSD v WB3JSI
- RPGH03:WA3YOA-3> Connected to KA3JSD
- GA0023C KA3JSD
- WA3TVG
- KA3JSD
- NE3E
- WB3AMR
- *** EOF
-
- These lines mean, in the same order:
-
- send "C PGH03" to NET, which connects to the netrom node (PGH03).
- send "C KA3JSD v WB3JSI" out the link to the net rom node(PGH03).
- check reply from node as: "PGH03:WA3YOA-3> Connected to KA3JSD"
- connection is on port A (ax0) and is to KA3JSD
- WA3TVG,KA3JSD,NE3E and WB3AMR's mail go to this bbs.
- *** EOF is the end of the segment.
-
-
- INITIATING FORWARDING
- To initiate forwarding, run the process "trigger". This will
- send a forwarding request up the message queue to 'net', causing
- spawing of a bbs which will attempt to deliver all unsent messages
- in the FWDING directory by initiating ax25 connections to the proper
- bbses as defined in the forwarding file "fwd.xo". Be sure trigger
- is owned by the proper user ID.
-
- REVERSE FORWARDING
- When the bbs receives the "SID" from a system which has initiated
- a connect to the bbs ([RLI-Ver6.2-$] or some such), it returns
- its own SID and the two then agree that reverse forwarding is
- possible. At the end of the incoming mail session, the remote
- bbs will transmit "F>", which will cause the XOBBS to scan its
- files/directories for mail to the remote bbs and deliver it.
-
- PARAMETER FILE
-
- A parameter file which contains both the next message number to
- be assigned and the number of active messages is specified in
- CONFIG.XO by PARAMFIL. It is read a log-in and by MAILDAEMON
- to assign message numbers.
-
- USER PERMISSIONS,ETC
-
- I run XOBBS and NET under a pseudo-user name of "net". XOBBS has its
- setuid bit set so that no matter who runs it, the files created are owned
- by "net". NET is started up under the same user name. All files and directories
- used are owned by "net". The programs 'maildaemon', 'trigger' and
- 'makhdrfil' are also owned by 'net' with setuid bit on.
-
- HELP FILES
-
- The help system consists of files with the extent '.hlp'. Put
- these in HOMEDIR.
-
- IN CASE OF TROUBLE
- Check:
- File protections
- setuid bit on xobbs, maildaemon, makdhrfil and trigger.
- config file(make sure it corresponds to what you really have)
- device assignments in "startup.net".
- if you get a file creation error message, create the file
- yourself by copying /dev/null to it.
-
-
- SIGNAL USAGE
-
- Signal Name number origin(mode) purpose
-
- SIGUSR1 signal 16 xobbs(rec) fires up maildaemon
-
- MESSAGE QUE USAGE
-
- rmsgqid receive message que...messages TO the bbs FROM net
- smsgqid send message que...messages FROM the bbs TO net
- crmsgqid control messages TO the bbs FROM net (currently not used)
- csmsgqid control messages FROM the bbs TO net.
-
-
- CONTROL MESSAGE FORMAT
-
- K where xxxx is an ascii bbs pid.... Kill bbs with that pid .
- N message FROM forwarder bbs process "go to next bbs in file".
- F message from 'trigger' to 'net'.."Spawn the forwarder".
-
- EXAMPLE DIRECTORY STRUCTURE
-
- /U/NEWBBS
- -------------------------------------------------------------
- mail(dir) temp(dir) fwding(dir) dist fwd.xo (help files)
- I I I
- (mail messages) (new msgs) (to-be-fwd)
-
-
- HEADER FILE
-
- The header file will grow until the program 'makhdrfil' is run,
- which will write out a new header file and clean out any garbage.
- I suggest a 'crontab' entry to run 'makhdrfil' in the wee hours.
- If it is run while the bbs is heavily loaded, it may cause
- some confusion, with a station logging on during the process of
- re-writing the file getting only part of the header file. This
- will not effect bbs operation, except that that user will not
- be able to list all the messages.
-
- Good Luck -Jim
-
-